You are here: About the advanced features > VBScript examples > Centralizing sequence number generation > Handling hub vault unavailability

Handling hub vault unavailability

The NextDocumentName function and DocGenericEvent_AfterNewDocument event handler described in the preceding topics will fail when the hub vault is not available online for any reason. If this happens, the functions will try to give the document an empty name, which will result in an error. To resolve this problem, the VBScript code should be modified to generate a temporary document name (for example, TMP-nnnnn) when the hub vault is not available. In the following examples, when a document has a temporary name, a new attempt will be made to retrieve the permanent name after each workflow state change.

The following changes should be made to the code:

The following example shows a wrapper around the NextDocumentName function to assign a temporary document name if the hub vault is unresponsive.

Sub SetDocumentName
  Set objGCF = AMCreateObject ("BlueCieloECM.GcfSupport", False)

  v = Document.DocumentType.DisplayName

  'The next statement avoids the error dialog that would otherwise appear 'when an error occurs during the remote call. On Error Resume Next
  vFilename = objGCF.CallRemote "NumberVault", "NextDocumentName", Document.GlobalID, v)
  Set objGCF = Nothing 'When the remote call fails for any reason, return no result
  If vFilename = "" Then
    If Left(Document.Filename, 3) = "TMP" Then 'If the document already has a temporary name and the remote call fails again, 'it should not get a new temporary name.
      Exit Sub
    Else
      vFilename = "TMP-" & Right ("00000" & Vault.Sequence ("Temporary").Next, 5)
    End If
  End If

  Document.Filename = vFilename & ".Txt"
End Sub

The DocGenericEvent_AfterNewDocument event handler is modified to call the SetDocumentName function in the following example:

Sub DocGenericEvent_AfterNewDocument (Batch, Action, SourceFile, DocType, DocTemplate)
  GCFDocGeneric_AfterNewDocument Batch, Action, SourceFile, DocType, DocTemplate
  Call SetDocumentName
End Sub

Finally, a call to SetDocumentName is added to the DocWorkflowEvent_AfterChangeWFState event handler as shown in the following example:

Sub DocWorkflowEvent_AfterChangeWFState (Batch, SourceState, _
                                         destinationState, Person, Comment)
  If Left(Document.Filename, 3) = "TMP" Then
     Call SetDocumentName
  End If 
End Sub

Related concepts

Centralizing sequence number generation

Understanding table data replication

Related tasks

Transferring ownership upon release

Calculating import notification messages

UpdateTable example

Executing remote script functions

Calculating document names

Requesting a document name

Enlisting all sites for new documents

Customizing site delistment


www.bluecieloecm.com